package de.QuizCommunity.service;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import de.QuizCommunity.domain.Benutzer;
import de.QuizCommunity.util.XMLGetParser;

public class Benutzer_XML_Parser {

	static final String KEY_ITEM = "benutzer"; // parent node
	static final String KEY_ID = "idBenutzer";
	static final String KEY_BENUTZERNAME = "benutzername";
	static final String KEY_EMAIL = "eMail";
	static final String KEY_RICHTIGE_FRAGEN = "richtig_beantwortete_Fragen";
	static final String KEY_EINGEST_FRAGEN = "fregenEingestellt";

	public static Benutzer getBenutzer(int id) {
		String URL = "http://10.0.2.2:8080/QuizCommunity/rest/webservice/benutzer/"
				+ id;
		XMLGetParser parser = new XMLGetParser();
		String xml = parser.getXmlFromUrl(URL); // getting XML
		Document doc = parser.getDomElement(xml); // getting DOM element
		Benutzer bn = new Benutzer();
		NodeList nl = doc.getElementsByTagName(KEY_ITEM);
		for (int i = 0; i < nl.getLength(); i++) {
			Element e = (Element) nl.item(i);
			bn.setIdBenutzer(Integer.parseInt(parser.getValue(e, KEY_ID)));
			bn.setBenutzername(parser.getValue(e, KEY_BENUTZERNAME));
			bn.setEMail(parser.getValue(e, KEY_EMAIL));
			bn.setRichtig_beantwortete_Fragen(Integer.parseInt(parser.getValue(
					e, KEY_RICHTIGE_FRAGEN)));
			bn.setFregenEingestellt(Integer.parseInt(parser.getValue(e,
					KEY_EINGEST_FRAGEN)));
		}
		return bn;
	}

	public static Benutzer getBenutzerByeMail(String eMail) {
		String URL = "http://10.0.2.2:8080/QuizCommunity/rest/webservice/benutzer/email/"
				+ eMail;
		XMLGetParser parser = new XMLGetParser();
		String xml = parser.getXmlFromUrl(URL); // getting XML
		Document doc = parser.getDomElement(xml); // getting DOM element
		Benutzer bn = new Benutzer();
		NodeList nl = doc.getElementsByTagName(KEY_ITEM);
		for (int i = 0; i < nl.getLength(); i++) {
			Element e = (Element) nl.item(i);
			bn.setIdBenutzer(Integer.parseInt(parser.getValue(e, KEY_ID)));
			bn.setBenutzername(parser.getValue(e, KEY_BENUTZERNAME));
			bn.setEMail(parser.getValue(e, KEY_EMAIL));
			bn.setRichtig_beantwortete_Fragen(Integer.parseInt(parser.getValue(
					e, KEY_RICHTIGE_FRAGEN)));
			bn.setFregenEingestellt(Integer.parseInt(parser.getValue(e,
					KEY_EINGEST_FRAGEN)));
		}
		return bn;
	}

}
